box gadget: Add a function to reverse children
authorMatthias Clasen <mclasen@redhat.com>
Mon, 18 Jan 2016 05:03:39 +0000 (00:03 -0500)
committerMatthias Clasen <mclasen@redhat.com>
Mon, 18 Jan 2016 05:03:39 +0000 (00:03 -0500)
This can be used to handle text direction changes.

gtk/gtkboxgadget.c
gtk/gtkboxgadgetprivate.h

index f62b0d78976c1d5fda720097db37dbcccf0f7a08..82c8632e00795528e1d53869129f092d7b725710 100644 (file)
@@ -651,3 +651,23 @@ gtk_box_gadget_remove_gadget (GtkBoxGadget *gadget,
 {
   gtk_box_gadget_remove_object (gadget, G_OBJECT (cssgadget));
 }
+
+void
+gtk_box_gadget_reverse_children (GtkBoxGadget *gadget)
+{
+  GtkBoxGadgetPrivate *priv = gtk_box_gadget_get_instance_private (GTK_BOX_GADGET (gadget));
+  int i, j;
+
+  gtk_css_node_reverse_children (gtk_css_gadget_get_node (GTK_CSS_GADGET (gadget)));
+
+  for (i = 0, j = priv->children->len - 1; i < j; i++, j--)
+    {
+      GtkBoxGadgetChild *child1 = &g_array_index (priv->children, GtkBoxGadgetChild, i);
+      GtkBoxGadgetChild *child2 = &g_array_index (priv->children, GtkBoxGadgetChild, j);
+      GtkBoxGadgetChild tmp;
+
+      tmp = *child1;
+      *child1 = *child2;
+      *child2 = tmp;
+    }
+}
index 8063fccc61f63f07a121c03c81f604d2b7843d3c..3662124a85fea6d2b6a8e66fc96dff26c8f00fbb 100644 (file)
@@ -70,6 +70,7 @@ void                    gtk_box_gadget_insert_gadget            (GtkBoxGadget
                                                                  GtkAlign                align);
 void                    gtk_box_gadget_remove_gadget            (GtkBoxGadget           *gadget,
                                                                  GtkCssGadget           *cssgadget);
+void                    gtk_box_gadget_reverse_children         (GtkBoxGadget           *gadget);
 
 
 G_END_DECLS